home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / amiga / bmake15.lzh / make.h < prev    next >
C/C++ Source or Header  |  1991-11-03  |  3KB  |  138 lines

  1. /*    make.h
  2.  *    (c) Copyright 1991 by Ben Eng, All Rights Reserved
  3.  *
  4.  */
  5.  
  6. #include <exec/nodes.h>
  7. #include <exec/lists.h>
  8. #include <intuition/intuition.h>
  9. #include <dos/dos.h>
  10. #include <dos/dosextens.h>
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13. #include <string.h>
  14. #include <stdarg.h>
  15.  
  16. #ifndef DEBUG
  17. #define DEBUG 1
  18. #endif
  19.  
  20. #ifndef MAXPATHNAME
  21. #define MAXPATHNAME    108
  22. #endif
  23.  
  24. struct parameters {
  25.     struct List filelist;
  26.     int MaxLine;    /* maximum line length */
  27.     int verbosity;    /* 0 = silent */
  28.     int log;
  29.     int debug;
  30.     int touch_mode;
  31.     int all_mode;
  32.     int no_builtins;
  33.     int pretend_mode;
  34.     int print_database;
  35.     char *makefile;
  36. };
  37.  
  38. struct globals {
  39.     struct Process *me;
  40.     FILE *logfile;
  41.     struct Screen *screen;
  42.     struct Window *window;
  43.     struct DrawInfo *drinfo;
  44.  
  45.     struct List targetlist;    /* target rules */
  46.     struct List speciallist; /* special rules */
  47.     struct List patternlist; /* pattern rules */
  48.     struct List macrolist;    /* macros */
  49.  
  50.     int builtin_flag;
  51.     int recursion_level;
  52.     BPTR oldcwd;
  53. };
  54.  
  55. struct string_node {
  56.     struct Node node;
  57.     char data[2];
  58. };
  59.  
  60. #define min(a,b)    (((a) < (b)) ? (a) : (b))
  61. #define max(a,b)    (((a) > (b)) ? (a) : (b))
  62.  
  63.  
  64. extern struct parameters Param;
  65. extern struct globals Global;
  66. extern char version_string[];
  67. extern char verdate_string[];
  68. extern char copyright_string[];
  69.  
  70. extern void NewList( struct List * );
  71. extern char *basename( const char * );
  72.  
  73. #if DEBUG
  74. #define debugprintf(l,x) \
  75.     if( Param.debug && Param.verbosity >= (l)) logprintf x ;
  76. #else
  77. #define debugprintf(l,x)
  78. #endif
  79.  
  80. int parse_parameters( int argc, char *argv[] );
  81. void delete_params( void );
  82.  
  83. struct string_node *new_snode( const char *str );
  84. struct string_node *renew_snode( const struct string_node *old, const char *str );
  85. struct string_node *delete_snode( struct string_node *old );
  86. void delete_slist( struct List *list );
  87.  
  88. void *for_list( struct List *list, long (*node_fn)(void *));
  89. void attach_list( struct List *newlist, struct List *oldlist );
  90.  
  91. int help( void );
  92.  
  93. /*
  94. int prompt( BPTR tty, const char *str );
  95. void tty_gotoxy( BPTR tty, int x, int y );
  96. void tty_put( BPTR tty, char *str, long outsize );
  97. void tty_puts( BPTR tty, char *str );
  98. void tty_printf( BPTR tty, const char *fmt, ... );
  99. void tty_clear( BPTR tty );
  100. void tty_clear_eol( BPTR tty );
  101. void tty_open_line( BPTR tty );
  102. void tty_normal( BPTR tty );        
  103. void tty_bold( BPTR tty );        
  104. void tty_underline( BPTR tty );
  105. void tty_backspace( BPTR tty );
  106. void tty_scroll_up( BPTR tty, int lines );
  107. void tty_scroll_down( BPTR tty, int lines );
  108.  
  109. int tty_getchar( void );
  110. int hit_a_key( void );
  111. void statusline( const char *s );
  112. int get_string( char *buf, int mlen );
  113. int get_number( char *buf, int mlen );
  114. int get_valid_string( char *buf, int mlen, int (*validate)());
  115. */
  116.  
  117. int open_logfile( void );
  118. void close_logfile( void );
  119. void logfile( char *string );
  120. void logprintf( const char *fmt, ... );
  121.  
  122. long doCommand( char *command, BPTR other );
  123. long xsystem( char *cmd );
  124.  
  125. int input_makefile( const char *makefile );
  126. int make_filename( const char *goalname, int *made );
  127.  
  128. char *find_token( char *line, int tok );
  129. int isemptyline( char *line );
  130. char *parse_strtok( char *dest, char *source, int len, int (*isdelim)( int ));
  131. char *parse_str( char *dest, char *source, int len);
  132. int count_args(unsigned char *string);
  133. char *find_word( char *string, int word );
  134. void strip_trailspace( char *line );
  135. int isnotsuf( int ch );
  136.  
  137. int init_builtins( void );
  138.